//---------------------------------------------------------------------------
// The confidential and proprietary information contained in this file may
// only be used by a person authorised under and to the extent permitted
// by a subsisting licensing agreement from ARM Limited.
//
//            (C) COPYRIGHT 2003-2012 ARM Limited.
//                ALL RIGHTS RESERVED
//
// This entire notice must be reproduced on all copies of this file
// and copies of this file may only be made by a person if such person is
// permitted to do so under the terms of a subsisting license agreement
// from ARM Limited.
//
// Filename            : $RCSfile: DriveAhbPv.h,v $
//
// Checked In          :  2013-05-08 18:20:26 +0100 (Wed, 08 May 2013)
//
// Revision            : 149902
//
// Release Information : PL401-r0p1-00eac0
//
//---------------------------------------------------------------------------
//
// Purpose: DriveAhbPv
//
//---------------------------------------------------------------------------

#ifndef AHBS_FRBM_MACRO_H
#define AHBS_FRBM_MACRO_H

#include <iostream>
#include <fstream>
#include <stdarg.h>
#include <stdio.h>
#include <iomanip>
#include <assert.h>
#include <string.h>
#include <stdlib.h>

#include "arm_types.h"

#include "frbm_types.h"

//#include "SimpleTest.h"
#include "FrbmMacro.h"

using namespace std;
using namespace arm_namespace;
using namespace frbm_namespace;


  class AhbSFrbmMacro : public FrbmMacro
  {
    public: 

    void  Access(transaction * trans);
    void  Read(transaction * trans);
    void  Write(transaction * trans);
    int   Data_width(amba_size size);
    void  Quit(frbm_quit QuitAction = quit_stop);
    void  Sync();

  };

  


#endif
